#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/socket.h>
void error_handling(char *message);
//更改I/O缓冲大小
int main(int argc,char* argv[])
{
	int sock;
	int snd_buf=1024*3,rcv_buf=1024*3,state;
	socklen_t len;
	sock=socket(PF_INET,SOCK_STREAM,0);
	//int setsockopt(int sock,int level,int optname,void *optval,socklen_t optlen);
	//设置输出缓冲大小
	state=setsockopt(sock,SOL_SOCKET,SO_SNDBUF,(void*)&snd_buf,sizeof(snd_buf));
	if(state)
		error_handling("setsockopt() error!");
	//设置输入缓冲大小
	state=setsockopt(sock,SOL_SOCKET,SO_RCVBUF,(void*)&rcv_buf,sizeof(rcv_buf));
	if(state)
		error_handling("setsockopt() error!");
	
	len=sizeof(snd_buf);
	state=getsockopt(sock,SOL_SOCKET,SO_SNDBUF,(void*)&snd_buf,&len);
	if(state)
		error_handling("getsockopt() error");
	len=sizeof(rcv_buf);
	state=getsockopt(sock,SOL_SOCKET,SO_RCVBUF,(void*)&rcv_buf,&len);
	if(state)
		error_handling("getsockopt() error");
	printf("Input buffer size:%d\n",rcv_buf);
	printf("Output buffer size:%d\n",snd_buf);
	return 0;
}
void error_handling(char *message)
{
	fputs(message,stderr);
	fputc('\n',stderr);
	exit(1);
}
